/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sv.com.intesal.seguridad.controlador;

import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import sv.com.intesal.clases.abstracts.ControladorAbstract;
import sv.com.intesal.seguridad.bean.TipoMenu;
import sv.com.intesal.seguridad.sql.SQLTipoMenu;

/**
 *
 * @author ejerez
 */
public class TipoMenuControlador extends ControladorAbstract {

    public void insert(TipoMenu tm) throws Exception {
        try {
            super.setPreparedStatement(SQLTipoMenu.insert);
            super.ps.setString(1, tm.getNombre_tm());
            super.ps.setString(2, super.v.getEstado(tm.getEstado_filtro_tm()));
            super.ps.executeUpdate();
        } catch (Exception e) {
            throw new Exception(e);
        } finally {
            super.setCloseConexion();
        }
    }

    public void update(TipoMenu tm) throws Exception {
        try {
            super.setPreparedStatement(SQLTipoMenu.update);
            super.ps.setString(1, tm.getNombre_tm());
            super.ps.setString(2, super.v.getEstado(tm.getEstado_filtro_tm()));
            super.ps.setInt(3, tm.getCodigo_tm());
            super.ps.executeUpdate();
        } catch (Exception e) {
            throw new Exception(e);
        } finally {
            super.setCloseConexion();
        }
    }

    public List<TipoMenu> getTipoMenus() throws Exception {
        List<TipoMenu> lista = new ArrayList<TipoMenu>();
        try {
            this.getExecuteQuery(SQLTipoMenu.getTipoMenu);
            while (super.rs.next()) {
                lista.add(this.getTipoMenu(super.rs));
            }
            return lista;
        } catch (Exception e) {
            throw new Exception(e);
        } finally {
            super.setCloseConexion();
        }
    }

    public List<TipoMenu> getTipoMenusActivos() throws Exception {
        List<TipoMenu> lista = new ArrayList<TipoMenu>();
        try {
            this.getExecuteQuery(SQLTipoMenu.getTipoMenuActivos);
            while (super.rs.next()) {
                lista.add(this.getTipoMenu(super.rs));
            }
            return lista;
        } catch (Exception e) {
            throw new Exception(e);
        } finally {
            super.setCloseConexion();
        }
    }

    private TipoMenu getTipoMenu(ResultSet rs) throws Exception {
        try {
            TipoMenu tm = new TipoMenu();
            tm.setCodigo_tm(rs.getInt("codigo_tm"));
            tm.setNombre_tm(rs.getString("nombre_tm"));
            tm.setEstado_tm(rs.getString("estado_tm"));
            tm.setEstado_filtro_tm(v.getEstado(rs.getString("estado_tm")));
            return tm;
        } catch (Exception e) {
            throw new Exception(e);
        }
    }
}
